﻿using System;
using System.Web;
/*********************************
 * 标题：验证码辅助类
 * 描述：主要存取session
 * 开发：单车上的程序猿（2014.10.25）
 * 编辑：      
 * 备注：
 * *******************************/

namespace QiBu.Api.Helper.Common
{
    public abstract class CaptchaManager
    {
        /// <summary>
        /// 验证码占用的Session名前缀
        /// </summary>
        private const string SessionPrefix = "Captcha-";


        /// <summary>
        /// 写入验证码到Session
        /// </summary>
        /// <param name="formName">表单名</param>
        /// <param name="authCode">验证码</param>
        public static void Write(string formName, string captcha)
        {
            HttpContext.Current.Session[SessionPrefix + formName] = captcha;
        }

        /// <summary>
        /// 从Session中清除验证码
        /// </summary>
        /// <param name="formName">表单名</param>
        public static void Clear(string formName)
        {
            HttpContext.Current.Session.Remove(SessionPrefix + formName);
        }

        /// <summary>
        /// 检查验证码
        /// </summary>
        /// <param name="formName">表单名</param>
        /// <param name="captcha">验证码</param>
        /// <returns>验证码是否匹配</returns>
        public static bool Check(string formName, string captcha)
        {
            Object val = HttpContext.Current.Session[SessionPrefix + formName];
            bool result = val != null && !String.IsNullOrEmpty(captcha) && val.ToString().ToLower() == captcha.ToLower();

            Clear(formName);

            return result;
        }
    }
}
